์ ์ธ๊ณ์ ์ผ๋ก ์์ ์ฑ์ด ๋๊ณ ๋ด๊ฒฐํจ์ฑ์ ๊ฐ์ถ ๋ถ์ฐ ์์คํ ๊ตฌ์ถ์ ์ํด Paxos, Raft ๋ฐ PBFT์ ๊ฐ์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ณ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ข ํฉ ๊ฐ์ด๋์ ๋๋ค.
๋ถ์ฐ ์์คํ : ํฉ์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ๋ณต์ก์ฑ ํ์
ํ๋ ๊ธฐ์ ์ ๊ด๋ํ๊ณ ์ํธ ์ฐ๊ฒฐ๋ ํ๊ฒฝ์์ ๋ถ์ฐ ์์คํ ์ ์ฐ๋ฆฌ๊ฐ ๋งค์ผ ์ฌ์ฉํ๋ ๊ฑฐ์ ๋ชจ๋ ์ค์ํ ์๋น์ค์ ๊ทผ๊ฐ์ ์ด๋ฃน๋๋ค. ๊ธ๋ก๋ฒ ๊ธ์ต ๋คํธ์ํฌ ๋ฐ ํด๋ผ์ฐ๋ ์ธํ๋ผ์์ ์ค์๊ฐ ํต์ ํ๋ซํผ ๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฅด๊ธฐ๊น์ง ์ด๋ฌํ ์์คํ ์ ์ฌ๋ฌ ๋ ๋ฆฝ์ ์ธ ์ปดํจํ ๋ ธ๋์์ ์๋ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ํ์ ์ถ์ข ์ ๋ถํํ๋ ํ์ฅ์ฑ, ๋ณต์๋ ฅ ๋ฐ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํ๋ ๋์์ ์ด ๋ฐฐํฌ๋ ์ฌ์คํ ๊ณผ์ ๋ฅผ ์ ์ํฉ๋๋ค. ์ผ๋ถ ๋ ธ๋๊ฐ ๋ถ๊ฐํผํ๊ฒ ์คํจํ๋๋ผ๋ ๋ชจ๋ ์ฐธ์ฌ ๋ ธ๋์์ ์ผ๊ด๋๊ณ ํฉ์๋ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์์ญ์ ๋๋ค.
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์ฐ ํ๊ฒฝ์์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฐ ์ด์ ์ฐ์์ฑ์ ์กฐ์ฉํ ์ํธ์์ ๋๋ค. ๋คํธ์ํฌ ์ง์ฐ, ๋ ธ๋ ์ถฉ๋ ๋๋ ์ ์์ ์ธ ๋์์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๊ณ ๊ทธ๋ฃน์ด ๋จ์ผ ๊ฐ, ์์ ์์ ๋๋ ์ํ ์ ํ์ ๋์ํ ์ ์๋๋ก ํฉ๋๋ค. ๊ทธ๊ฒ ์์ด๋ ์ฐ๋ฆฌ๊ฐ ๋์งํธ ์ธ๊ณ์์ ๊ธฐ๋ํ๋ ์ ๋ขฐ์ฑ์ด ๋ฌด๋์ง ๊ฒ์ ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์กํ ์ธ๊ณ๋ฅผ ํ๊ตฌํ๊ณ , ๊ธฐ๋ณธ ์์น์ ํ๊ตฌํ๊ณ , ์ฃผ์ ๊ตฌํ์ ๊ฒํ ํ๊ณ , ์ค์ ๋ถ์ฐ ์์คํ ์ ๋ฐฐํฌํ๊ธฐ ์ํ ์ค์ง์ ์ธ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ถ์ฐ ํฉ์์ ๊ทผ๋ณธ์ ์ธ ๊ณผ์
๊ฒฌ๊ณ ํ ๋ถ์ฐ ์์คํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ๋ณต์กํฉ๋๋ค. ํต์ฌ์ ์ธ ์ด๋ ค์์ ๋ฉ์์ง๊ฐ ์ง์ฐ, ์์ค ๋๋ ์ฌ์ ๋ ฌ๋ ์ ์๊ณ ๋ ธ๋๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์คํจํ ์ ์๋ ๋คํธ์ํฌ์ ๋น๋๊ธฐ์ ํน์ฑ์ ์์ต๋๋ค. ์ฌ๋ฌ ์๋ฒ๊ฐ ํน์ ํธ๋์ญ์ ์ด ์ปค๋ฐ๋์๋์ง ์ฌ๋ถ์ ๋์ํด์ผ ํ๋ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ์ญ์์ค. ์ผ๋ถ ์๋ฒ๊ฐ ์ฑ๊ณต์ ๋ณด๊ณ ํ๊ณ ๋ค๋ฅธ ์๋ฒ๊ฐ ์คํจ๋ฅผ ๋ณด๊ณ ํ๋ฉด ์์คํ ์ ์ํ๊ฐ ๋ชจํธํด์ ธ ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฐ ์ ์ฌ์ ์ธ ์ด์ ํผ๋์ผ๋ก ์ด์ด์ง๋๋ค.
CAP ์ ๋ฆฌ ๋ฐ ๊ด๋ จ์ฑ
๋ถ์ฐ ์์คํ ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ๋ค์ ์ธ ๊ฐ์ง ์์ฑ ์ค ๋ ๊ฐ์ง๋ง ๋์์ ๋ณด์ฅํ ์ ์๋ค๊ณ ๋ช ์ํ๋ CAP ์ ๋ฆฌ์ ๋๋ค.
- ์ผ๊ด์ฑ: ๋ชจ๋ ์ฝ๊ธฐ๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐ๊ธฐ ๋๋ ์ค๋ฅ๋ฅผ ์์ ํฉ๋๋ค.
- ๊ฐ์ฉ์ฑ: ๋ชจ๋ ์์ฒญ์ ๊ฐ์ฅ ์ต๊ทผ์ ์ฐ๊ธฐ๋ผ๋ ๋ณด์ฅ ์์ด ์๋ต์ ์์ ํฉ๋๋ค.
- ํํฐ์ ๋ด์ฑ: ์์คํ ์ ๋ ธ๋ ๊ฐ์ ๋ฉ์์ง๋ฅผ ์ญ์ ํ๋ ์์์ ๋คํธ์ํฌ ์ค๋ฅ(ํํฐ์ )์๋ ๋ถ๊ตฌํ๊ณ ๊ณ์ ์๋ํฉ๋๋ค.
์ค์ ๋ก ๋คํธ์ํฌ ํํฐ์ ์ ์ถฉ๋ถํ ํฐ ๊ท๋ชจ์ ๋ถ์ฐ ์์คํ ์์ ๋ถ๊ฐํผํฉ๋๋ค. ๋ฐ๋ผ์ ์ค๊ณ์๋ ํญ์ ํํฐ์ ๋ด์ฑ(P)์ ์ ํํด์ผ ํฉ๋๋ค. ์ด๋ก ์ธํด ์ผ๊ด์ฑ(C)๊ณผ ๊ฐ์ฉ์ฑ(A) ์ค์์ ์ ํํด์ผ ํฉ๋๋ค. ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ๋คํธ์ํฌ ๋ถํ ์ค ๊ฐ์ฉ์ฑ(A)์ ํฌ์ํ๋๋ผ๋ ํํฐ์ (P)์ ์ง๋ฉดํ๋๋ผ๋ ์ผ๊ด์ฑ(C)์ ์ ์งํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ์ ์ถฉ์ ๊ธ์ต ์์ฅ ๋๋ ๊ตฌ์ฑ ๊ด๋ฆฌ ์๋น์ค์ ๊ฐ์ด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ด ๊ฐ์ฅ ์ค์ํ ์์คํ ์ ์ค๊ณํ ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ถ์ฐ ์์คํ ์ ์ค๋ฅ ๋ชจ๋ธ
์์คํ ์ด ๊ฒช์ ์ ์๋ ์ค๋ฅ ์ ํ์ ์ดํดํ๋ ๊ฒ์ ํจ๊ณผ์ ์ธ ํฉ์ ๋ฉ์ปค๋์ฆ์ ์ค๊ณํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ์ถฉ๋ ์ค๋ฅ(์คํจ ์ค์ง): ๋ ธ๋๊ฐ ๋จ์ํ ์๋์ ์ค์งํฉ๋๋ค. ์ถฉ๋ํ์ฌ ๋ค์ ์์๋ ์ ์์ง๋ง ์๋ชป๋๊ฑฐ๋ ์คํด์ ์์ง๊ฐ ์๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด์ง ์์ต๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ฌ์ด ์ค๋ฅ์ ๋๋ค.
- ์ถฉ๋ ๋ณต๊ตฌ ์ค๋ฅ: ์ถฉ๋ ์ค๋ฅ์ ์ ์ฌํ์ง๋ง ๋ ธ๋๋ ์ถฉ๋์์ ๋ณต๊ตฌํ์ฌ ์์คํ ์ ๋ค์ ์ฐธ์ฌํ ์ ์์ผ๋ฉฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์ง ์์ผ๋ฉด ์ ์ฌ์ ์ผ๋ก ์ค๋๋ ์ํ๊ฐ ๋ฉ๋๋ค.
- ๋๋ฝ ์ค๋ฅ: ๋ ธ๋๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๋ฐ์ง ๋ชปํ๊ฑฐ๋ ๋ฉ์์ง๋ฅผ ์ญ์ ํฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ ๋ฌธ์ ๋๋ ์ํํธ์จ์ด ๋ฒ๊ทธ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
- ๋น์ํด ์ค๋ฅ: ๊ฐ์ฅ ์ฌ๊ฐํ๊ณ ๋ณต์กํฉ๋๋ค. ๋ ธ๋๋ ์ ์์ ์ด๊ฑฐ๋ ์คํด์ ์์ง๊ฐ ์๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ฑฐ๋ ๋ค๋ฅธ ๊ฒฐํจ์ด ์๋ ๋ ธ๋์ ๊ณต๋ชจํ๊ฑฐ๋ ์ฌ์ง์ด ์์คํ ์ ์ ๊ทน์ ์ผ๋ก ๋ฐฉํดํ๋ ค๊ณ ์๋ํ๋ ๋ฑ ์์๋ก ๋์ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค๋ฅ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ก์ฒด์ธ ๋๋ ๊ตฐ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ด ๋งค์ฐ ๋ฏผ๊ฐํ ํ๊ฒฝ์์ ๊ณ ๋ ค๋ฉ๋๋ค.
FLP ๋ถ๊ฐ๋ฅ์ฑ ๊ฒฐ๊ณผ
๋์ ํ ์ด๋ก ์ ๊ฒฐ๊ณผ์ธ FLP ๋ถ๊ฐ๋ฅ์ฑ ์ ๋ฆฌ(Fischer, Lynch, Paterson, 1985)๋ ๋น๋๊ธฐ ๋ถ์ฐ ์์คํ ์์ ํ๋ก์ธ์ค ํ๋๋ผ๋ ์ถฉ๋ํ ์ ์๋ ๊ฒฝ์ฐ ํฉ์๋ฅผ ๋ณด์ฅํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค๊ณ ๋ช ์ํฉ๋๋ค. ์ด ์ ๋ฆฌ๋ ํฉ์๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ๋ด์ฌ๋ ์ด๋ ค์์ ๊ฐ์กฐํ๊ณ ์ค์ ์๊ณ ๋ฆฌ์ฆ์ด ๋คํธ์ํฌ ๋๊ธฐ(์: ์ ํ๋ ์๊ฐ ๋ด์ ๋ฉ์์ง ์ ๋ฌ)์ ๋ํ ๊ฐ์ ์ ํ๊ฑฐ๋ ๋ชจ๋ ์๋๋ฆฌ์ค์์ ๊ฒฐ์ ๋ก ์ ์ด๊ธฐ๋ณด๋ค๋ ํ๋ฅ ๋ก ์ ์ผ๋ก ์งํํ๊ธฐ ์ํด ๋ฌด์์ํ ๋ฐ ์๊ฐ ์ด๊ณผ์ ์์กดํ๋ ์ด์ ๋ฅผ ๊ฐ์กฐํฉ๋๋ค. ์ด๋ ์์คํ ์ด ๋งค์ฐ ๋์ ํ๋ฅ ๋ก ํฉ์๋ฅผ ๋ฌ์ฑํ๋๋ก ์ค๊ณ๋ ์ ์์ง๋ง ์์ ํ ๋น๋๊ธฐ์ ์ด๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฌ์ด ํ๊ฒฝ์์ ์ ๋์ ์ธ ํ์ค์ฑ์ ์ด๋ก ์ ์ผ๋ก ๋ฌ์ฑํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ํต์ฌ ๊ฐ๋
์ด๋ฌํ ์ด๋ ค์์๋ ๋ถ๊ตฌํ๊ณ ์ค์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ํ์์ ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ผ๋ จ์ ํต์ฌ ์์ฑ์ ์ค์ํฉ๋๋ค.
- ํฉ์: ๋ชจ๋ ๊ฒฐํจ์ด ์๋ ํ๋ก์ธ์ค๋ ๊ฒฐ๊ตญ ๋์ผํ ๊ฐ์ ๋์ํฉ๋๋ค.
- ์ ํจ์ฑ: ๊ฐ
v์ ๋์ํ๋ฉดv๋ ์ผ๋ถ ํ๋ก์ธ์ค์์ ์ ์๋์์ด์ผ ํฉ๋๋ค. - ์ข ๋ฃ: ๋ชจ๋ ๊ฒฐํจ์ด ์๋ ํ๋ก์ธ์ค๋ ๊ฒฐ๊ตญ ๊ฐ์ ๋ํด ๊ฒฐ์ ํฉ๋๋ค.
- ๋ฌด๊ฒฐ์ฑ: ๊ฐ ๊ฒฐํจ์ด ์๋ ํ๋ก์ธ์ค๋ ์ต๋ ํ๋์ ๊ฐ์ ๋ํด ๊ฒฐ์ ํฉ๋๋ค.
์ด๋ฌํ ๊ธฐ๋ณธ ์์ฑ ์ธ์๋ ์ฌ๋ฌ ๋ฉ์ปค๋์ฆ์ด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฆฌ๋ ์ ์ถ: ๋ง์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ์ ์ํ๊ณ ํฉ์ ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์คํธ๋ ์ด์ ํ๋ ์ญํ ์ ํ๋ '๋ฆฌ๋'๋ฅผ ์ง์ ํฉ๋๋ค. ๋ฆฌ๋๊ฐ ์คํจํ๋ฉด ์ ๋ฆฌ๋๋ฅผ ์ ์ถํด์ผ ํฉ๋๋ค. ์ด๋ ์กฐ์ ์ ๋จ์ํํ์ง๋ง ๊ฐ๋ ฅํ๊ฒ ์ฒ๋ฆฌ๋์ง ์์ผ๋ฉด ์ ์ฌ์ ์ธ ๋จ์ผ ์คํจ ์ง์ (ํฉ์๊ฐ ์๋ ์ ์์ฉ)์ ๋์ ํฉ๋๋ค.
- ์ ์กฑ์: ๋ชจ๋ ๋ ธ๋๊ฐ ๋์ํ๋๋ก ์๊ตฌํ๋ ๋์ ๋ ธ๋์ '์ ์กฑ์'(๊ณผ๋ฐ์ ๋๋ ํน์ ํ์ ์งํฉ)๊ฐ ์ ์์ ์ธ์ ํ๋ฉด ํฉ์์ ๋๋ฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฅผ ํตํด ์ผ๋ถ ๋ ธ๋๊ฐ ๋ค์ด๋๊ฑฐ๋ ๋๋ฆฐ ๊ฒฝ์ฐ์๋ ์์คํ ์ด ์งํํ ์ ์์ต๋๋ค. ์ ์กฑ์ ํฌ๊ธฐ๋ ๋ ๊ฐ์ ๊ต์ฐจํ๋ ์ ์กฑ์๊ฐ ํญ์ ํ๋ ์ด์์ ๊ณตํต ๋ ธ๋๋ฅผ ๊ณต์ ํ์ฌ ์ถฉ๋ํ๋ ๊ฒฐ์ ์ ๋ฐฉ์งํ๋๋ก ์ ์คํ๊ฒ ์ ํ๋ฉ๋๋ค.
- ๋ก๊ทธ ๋ณต์ : ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ข ์ข ์ฌ๋ฌ ์์คํ ์์ ์ผ๋ จ์ ๋ช ๋ น(๋ก๊ทธ)์ ๋ณต์ ํ์ฌ ์๋ํฉ๋๋ค. ํฉ์์ ์ํด ๋์๋๋ฉด ๊ฐ ๋ช ๋ น์ ๋ก๊ทธ์ ์ถ๊ฐ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๋ก๊ทธ๋ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ๋์ผํ ์์๋ก ๋ช ๋ น์ ์ฒ๋ฆฌํ๊ณ ๋์ผํ ์ํ์ ๋๋ฌํ๋๋ก ๋ณด์ฅํ๋ '์ํ ๋จธ์ '์ ๋ํ ๊ฒฐ์ ๋ก ์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
์ธ๊ธฐ ์๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ๊ตฌํ
ํฉ์์ ๋ํ ์ด๋ก ์ ํ๊ฒฝ์ ๊ด๋ํ์ง๋ง ๋ช ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ด ์ค์ ๋ถ์ฐ ์์คํ ์์ ์ง๋ฐฐ์ ์ธ ์๋ฃจ์ ์ผ๋ก ๋ฑ์ฅํ์ต๋๋ค. ๊ฐ๊ฐ์ ๋ณต์ก์ฑ, ์ฑ๋ฅ ๋ฐ ๋ด๊ฒฐํจ์ฑ ํน์ฑ์ ๋ค์ํ ๊ท ํ์ ์ ๊ณตํฉ๋๋ค.
Paxos: ๋ถ์ฐ ํฉ์์ ๋๋ถ
1990๋ Leslie Lamport๊ฐ ์ฒ์ ๋ฐํํ Paxos(ํจ์ฌ ๋์ค์ ๋๋ฆฌ ์ดํด๋์์ง๋ง)๋ ๊ฐ์ฅ ์ํฅ๋ ฅ ์๊ณ ๋๋ฆฌ ์ฐ๊ตฌ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ํ๋ก์ธ์ค์ ๊ณผ๋ฐ์๊ฐ ์๋ํ๋ ๊ฒฝ์ฐ ์ถฉ๋์ด ๋ฐ์ํ๊ธฐ ์ฌ์ด ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ๋คํธ์ํฌ์์ ํฉ์๋ฅผ ๋ฌ์ฑํ๋ ๋ฅ๋ ฅ์ผ๋ก ์ ๋ช ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ณต์์ ์ธ ์ค๋ช ์ ์ดํดํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ "Paxos๋ ์ผ๋จ ์ดํดํ๋ฉด ๊ฐ๋จํฉ๋๋ค."๋ผ๋ ๋ง์ด ๋์ค๊ฒ ๋์์ต๋๋ค.
Paxos ์๋ ๋ฐฉ์(๊ฐ๋จํ๋จ)
Paxos๋ ์ธ ๊ฐ์ง ์ ํ์ ์ฐธ๊ฐ์๋ฅผ ์ ์ํฉ๋๋ค.
- ์ ์์: ํฉ์ํ ๊ฐ์ ์ ์ํฉ๋๋ค.
- ์๋ฝ์: ์ ์๋ ๊ฐ์ ํฌํํฉ๋๋ค. ๊ทธ๋ค์ ์์ ์ด ๋ณธ ๊ฐ์ฅ ๋์ ์ ์ ๋ฒํธ์ ์๋ฝํ ๊ฐ์ ์ ์ฅํฉ๋๋ค.
- ํ์ต์: ์ด๋ค ๊ฐ์ด ์ ํ๋์๋์ง ์์๋ ๋๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๋ ๊ฐ์ง ์ฃผ์ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค.
-
1๋จ๊ณ(์ค๋น):
- 1a(์ค๋น): ์ ์์๋ ์๋กญ๊ณ ์ ์ญ์ ์ผ๋ก ๊ณ ์ ํ ์ ์ ๋ฒํธ
n์ด ์๋ '์ค๋น' ๋ฉ์์ง๋ฅผ ๊ณผ๋ฐ์์ ์๋ฝ์์๊ฒ ๋ณด๋ ๋๋ค. - 1b(์ฝ์): ์๋ฝ์๋ ์ค๋น ๋ฉ์์ง
(n)์ ๋ฐ์ผ๋ฉดn๋ณด๋ค ์์ ๋ฒํธ๊ฐ ์๋ ๋ชจ๋ ํฅํ ์ ์์ ๋ฌด์ํ๊ฒ ๋ค๋ '์ฝ์'์ผ๋ก ์๋ตํฉ๋๋ค. ์ด์ ์ ์์ ๋ํ ๊ฐ์ ์ด๋ฏธ ์๋ฝํ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋์ ๋ฒํธ์ ์๋ฝ๋ ๊ฐ(v_accepted)๊ณผ ์ ์ ๋ฒํธ(n_accepted)์ ์๋ต์ ํฌํจํฉ๋๋ค.
- 1a(์ค๋น): ์ ์์๋ ์๋กญ๊ณ ์ ์ญ์ ์ผ๋ก ๊ณ ์ ํ ์ ์ ๋ฒํธ
-
2๋จ๊ณ(์๋ฝ):
- 2a(์๋ฝ): ์ ์์๊ฐ ๊ณผ๋ฐ์์ ์๋ฝ์๋ก๋ถํฐ ์ฝ์์ ๋ฐ์ผ๋ฉด ์ ์์ ๋ํ ๊ฐ
v๋ฅผ ์ ํํฉ๋๋ค. ์๋ฝ์๊ฐ ์ด์ ์ ์๋ฝํ ๊ฐv_accepted๋ฅผ ๋ณด๊ณ ํ ๊ฒฝ์ฐ ์ ์์๋ ๊ฐ์ฅ ๋์n_accepted์ ๊ด๋ จ๋ ๊ฐ์ ์ ํํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ ์ ๊ฐ์ ์ ์ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์ ๋ฒํธn๊ณผ ์ ํํ ๊ฐv๋ฅผ ํฌํจํ๋ '์๋ฝ' ๋ฉ์์ง๋ฅผ ๋์ผํ ๊ณผ๋ฐ์์ ์๋ฝ์์๊ฒ ๋ณด๋ ๋๋ค. - 2b(์๋ฝ๋จ): ์๋ฝ์๋ ์๋ฝ ๋ฉ์์ง
(n, v)๋ฅผ ๋ฐ์ผ๋ฉดn๋ณด๋ค ์์ ๋ฒํธ๊ฐ ์๋ ์ ์์ ๋ฌด์ํ๊ฒ ๋ค๊ณ ์ฝ์ํ์ง ์์ ๊ฒฝ์ฐ ๊ฐv๋ฅผ ์๋ฝํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ์ต์์๊ฒ ์๋ฝ๋ ๊ฐ์ ์๋ฆฝ๋๋ค.
- 2a(์๋ฝ): ์ ์์๊ฐ ๊ณผ๋ฐ์์ ์๋ฝ์๋ก๋ถํฐ ์ฝ์์ ๋ฐ์ผ๋ฉด ์ ์์ ๋ํ ๊ฐ
Paxos์ ์ฅ๋จ์
- ์ฅ์ : ๋ด๊ฒฐํจ์ฑ์ด ๋์ต๋๋ค(
2f+1๋ ธ๋ ์ค์์f๊ฐ์ ์ถฉ๋ ์ค๋ฅ๋ฅผ ํ์ฉํ ์ ์์). ๋คํธ์ํฌ ํํฐ์ ์ค์๋ ์์ (์๋ชป๋ ๊ฒฐ์ ์ ๋ด๋ฆฌ์ง ์์)์ ๋ณด์ฅํฉ๋๋ค. ๊ณ ์ ๋ฆฌ๋ ์์ด ์งํํ ์ ์์ต๋๋ค(๋ฆฌ๋ ์ ์ถ์ด ๋จ์ํ๋์ง๋ง). - ๋จ์ : ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ๊ตฌํํ๊ธฐ๊ฐ ๋งค์ฐ ๋ณต์กํฉ๋๋ค. ํน์ ์ต์ ํ(์: Multi-Paxos์์์ ๊ฐ์ด ๊ตฌ๋ณ๋ ๋ฆฌ๋ ์ฌ์ฉ) ์์ด ํ์ฑ ๋ฌธ์ (์: ๋ฐ๋ณต๋๋ ๋ฆฌ๋ ์ ์ถ, ๊ธฐ์ ์ํ๋ก ์ด์ด์ง)๋ก ๊ณ ํต๋ฐ์ ์ ์์ต๋๋ค.
์ค์ ๊ตฌํ ๋ฐ ๋ณํ
๋ณต์ก์ฑ ๋๋ฌธ์ ์์ํ Paxos๋ ๊ฑฐ์ ์ง์ ๊ตฌํ๋์ง ์์ต๋๋ค. ๋์ ์์คํ ์ ์ข ์ข ์์ ์ ์ธ ๋ฆฌ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ์์ฐจ์ ์ผ๋ก ์ ์ํ๋๋ก ํ์ฌ ๋ฆฌ๋ ์ ์ถ์ ์ค๋ฒํค๋๋ฅผ ์ฌ๋ฌ ๋ฒ์ ํฉ์ ๋ผ์ด๋์ ๊ฑธ์ณ ๋ถํ ์ํํ๋ Multi-Paxos์ ๊ฐ์ ๋ณํ์ ์ฌ์ฉํฉ๋๋ค. Paxos(๋๋ ํ์ ์ ํ)์ ์ํฅ์ ๋ฐ๊ฑฐ๋ ์ง์ ์ฌ์ฉํ๋ ์์คํ ์ ์๋ก๋ Google์ Chubby ์ ๊ธ ์๋น์ค, Apache ZooKeeper(Paxos์ ์ ์ฌํ ์๊ณ ๋ฆฌ์ฆ์ธ ZAB ์ฌ์ฉ) ๋ฐ ๋ค์ํ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ด ์์ต๋๋ค.
Raft: ์ดํดํ๊ธฐ ์ฌ์ด ํฉ์
Raft๋ Diego Ongaro์ John Ousterhout๊ฐ ์คํ ํฌ๋ ๋ํ์์ '์ดํดํ๊ธฐ ์ฝ๊ฒ'๋ผ๋ ๋ช ์์ ์ธ ๋ชฉํ๋ก ๊ฐ๋ฐํ์ต๋๋ค. Paxos๋ ํฉ์๋ฅผ ์ํ ์ด๋ก ์ ์ต์๊ฐ์ ์ด์ ์ ๋ง์ถ๋ ๋ฐ๋ฉด, Raft๋ ๋ณด๋ค ๊ตฌ์กฐํ๋๊ณ ์ง๊ด์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ฐ์ ์ํ์ฌ ๊ตฌํํ๊ณ ์ถ๋ก ํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค.
Raft ์๋ ๋ฐฉ์
Raft๋ ๋ ธ๋์ ๋ํ ๋ช ํํ ์ญํ ๊ณผ ๊ฐ๋จํ ์ํ ์ ํ์ ์ ์ํ์ฌ ์๋ํฉ๋๋ค.
- ๋ฆฌ๋: ๋ชจ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ๋ก๊ทธ ํญ๋ชฉ์ ์ ์ํ๊ณ , ํ๋ก์์๊ฒ ๋ณต์ ํ๋ ์ญํ ์ ํ๋ ๊ธฐ๋ณธ ๋ ธ๋์ ๋๋ค. ํ ๋ฒ์ ํ ๋ช ์ ๋ฆฌ๋๋ง ์์ต๋๋ค.
- ํ๋ก์: ๋ฆฌ๋์ ์์ฒญ์ ์๋ตํ๊ณ ํ๋ณด์์๊ฒ ํฌํํ๋ ์๋ ๋ ธ๋์ ๋๋ค.
- ํ๋ณด์: ๋ฆฌ๋๊ฐ ์คํจํ๋ค๊ณ ํ๋จํ์ฌ ์๋ก์ด ๋ฆฌ๋ ์ ์ถ์ ์์ํ ๋ ํ๋ก์๊ฐ ์ ํ๋๋ ์ํ์ ๋๋ค.
Raft๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ฉ์ปค๋์ฆ์ ํตํด ํฉ์๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
- ๋ฆฌ๋ ์ ์ถ: ํ๋ก์๊ฐ ํน์ ์๊ฐ ์ด๊ณผ ๊ธฐ๊ฐ ๋์ ๋ฆฌ๋๋ก๋ถํฐ ์์์ ๋ฃ์ง ๋ชปํ๋ฉด ํ๋ณด์๊ฐ ๋ฉ๋๋ค. ํ์ฌ ์๊ธฐ(๋ ผ๋ฆฌ์ ์๊ณ)๋ฅผ ๋๋ฆฌ๊ณ ์์ ์๊ฒ ํฌํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ค๋ฅธ ๋ ธ๋์ 'RequestVote' RPC๋ฅผ ๋ณด๋ ๋๋ค. ๊ณผ๋ฐ์๋ก๋ถํฐ ํฌํ๋ฅผ ๋ฐ์ผ๋ฉด ์๋ก์ด ๋ฆฌ๋๊ฐ ๋ฉ๋๋ค. ๋ค๋ฅธ ๋ ธ๋๊ฐ ๋ฆฌ๋๊ฐ ๋๊ฑฐ๋ ๋ถํ ํฌํ๊ฐ ๋ฐ์ํ๋ฉด ์ ์ ๊ฑฐ ์๊ธฐ๊ฐ ์์๋ฉ๋๋ค.
- ๋ก๊ทธ ๋ณต์ : ๋ฆฌ๋๊ฐ ์ ์ถ๋๋ฉด ํด๋ผ์ด์ธํธ ๋ช ๋ น์ ์์ ํ๊ณ ๋ก์ปฌ ๋ก๊ทธ์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ 'AppendEntries' RPC๋ฅผ ๋ชจ๋ ํ๋ก์์๊ฒ ๋ณด๋ด ์ด๋ฌํ ํญ๋ชฉ์ ๋ณต์ ํฉ๋๋ค. ๋ฆฌ๋๊ฐ ํ๋ก์์ ๊ณผ๋ฐ์์ ๋ณต์ ํ๋ฉด ๋ก๊ทธ ํญ๋ชฉ์ด ์ปค๋ฐ๋ฉ๋๋ค. ์ปค๋ฐ๋ ํญ๋ชฉ๋ง ์ํ ๋จธ์ ์ ์ ์ฉ๋ฉ๋๋ค.
Raft์ ์ฅ๋จ์
- ์ฅ์ : Paxos๋ณด๋ค ์ดํดํ๊ณ ๊ตฌํํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค. ๊ฐ๋ ฅํ ๋ฆฌ๋ ๋ชจ๋ธ์ ํด๋ผ์ด์ธํธ ์ํธ ์์ฉ ๋ฐ ๋ก๊ทธ ๊ด๋ฆฌ๋ฅผ ๋จ์ํํฉ๋๋ค. ์ถฉ๋ ์ค๋ฅ ์ ์์ ๊ณผ ํ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ๋จ์ : ๊ฐ๋ ฅํ ๋ฆฌ๋๋ ์ฐ๊ธฐ ์์ ์ด ๋ง์ ์ํฌ๋ก๋์ ๋ณ๋ชฉ ํ์์ด ๋ ์ ์์ต๋๋ค(๊ทธ๋ฌ๋ ์ด๋ ๋ง์ ์ฌ์ฉ ์ฌ๋ก์์ ํ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค). ์งํ์ ์ํด์๋ ์์ ์ ์ธ ๋ฆฌ๋๊ฐ ํ์ํ๋ฉฐ, ์ด๋ ์ฆ์ ๋คํธ์ํฌ ํํฐ์ ๋๋ ๋ฆฌ๋ ์คํจ์ ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค.
Raft์ ์ค์ ๊ตฌํ
์ดํดํ๊ธฐ ์ฝ๋๋ก ์ค๊ณ๋ Raft๋ ๋๋ฆฌ ์ฑํ๋์์ต๋๋ค. ์ฃผ์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- etcd: Kubernetes์์ ํด๋ฌ์คํฐ ์กฐ์ ๋ฐ ์ํ ๊ด๋ฆฌ์ ์ฌ์ฉํ๋ ๋ถ์ฐ ํค-๊ฐ ์ ์ฅ์์ ๋๋ค.
- Consul: ์๋น์ค ๊ฒ์ ๋ฐ ๊ตฌ์ฑ์ ์ํด ๊ฐ์ฉ์ฑ์ด ๋๊ณ ์ผ๊ด์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ฅ์์ Raft๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค ๋ฉ์ ์๋ฃจ์ ์ ๋๋ค.
- cockroachDB: ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง ๋ฐ ๋ณต์ ๋ฅผ ์ํด Raft ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๋ถ์ฐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
- HashiCorp Nomad: ์์ด์ ํธ ์กฐ์ ์ ์ํด Raft๋ฅผ ์ฌ์ฉํ๋ ์ํฌ๋ก๋ ์ค์ผ์คํธ๋ ์ดํฐ์ ๋๋ค.
ZAB(ZooKeeper Atomic Broadcast)
ZAB๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ถ์ฐ ์กฐ์ ์๋น์ค์ธ Apache ZooKeeper์ ํต์ฌ์ ์๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. Paxos์ ์์ฃผ ๋น๊ต๋์ง๋ง ZAB๋ ์ํ ๋ณ๊ฒฝ์ ๋ํ ์์๊ฐ ์ง์ ๋ ์์ ์ ์ธ ๋ธ๋ก๋์บ์คํธ๋ฅผ ์ ๊ณตํ๊ณ ๋ฆฌ๋ ์ ์ถ์ ๊ด๋ฆฌํ๋ ZooKeeper์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ํน๋ณํ ์กฐ์ ๋์์ต๋๋ค.
ZAB ์๋ ๋ฐฉ์
ZAB๋ ๋ชจ๋ ZooKeeper ๋ณต์ ๋ณธ์ ์ํ๋ฅผ ๋๊ธฐํ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ด๋ ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ํตํด ๋ฌ์ฑ๋ฉ๋๋ค.
- ๋ฆฌ๋ ์ ์ถ: ZooKeeper๋ ๋จ์ผ ๋ฆฌ๋๊ฐ ํญ์ ํ์ฑ ์ํ์ธ์ง ํ์ธํ๊ธฐ ์ํด ์์์ ๋ธ๋ก๋์บ์คํธ ํ๋กํ ์ฝ(๋ฆฌ๋ ์ ์ถ ํฌํจ)์ ๋ณํ์ ์ฌ์ฉํฉ๋๋ค. ํ์ฌ ๋ฆฌ๋๊ฐ ์คํจํ๋ฉด ๋ ธ๋๊ฐ ์ ๋ฆฌ๋, ์ผ๋ฐ์ ์ผ๋ก ์ต์ ๋ก๊ทธ๊ฐ ์๋ ๋ ธ๋์ ํฌํํ๋ ์ ์ถ ํ๋ก์ธ์ค๊ฐ ์์๋ฉ๋๋ค.
- ๊ฒ์: ๋ฆฌ๋๊ฐ ์ ์ถ๋๋ฉด ํ๋ก์๋ก๋ถํฐ ๊ฐ์ฅ ์ต๊ทผ ์ํ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ๊ฒ์ ๋จ๊ณ๋ฅผ ์์ํฉ๋๋ค. ํ๋ก์๋ ๊ฐ์ฅ ๋์ ๋ก๊ทธ ID๋ฅผ ๋ฆฌ๋์๊ฒ ๋ณด๋ ๋๋ค.
- ๋๊ธฐํ: ๊ทธ๋ฐ ๋ค์ ๋ฆฌ๋๋ ํ๋ก์์ ์ํ๋ฅผ ๋๊ธฐํํ๊ณ ๋๋ฝ๋ ํธ๋์ญ์ ์ ๋ณด๋ด ์ต์ ์ํ๋ก ๋ง๋ญ๋๋ค.
- ๋ธ๋ก๋์บ์คํธ: ๋๊ธฐํ ํ ์์คํ ์ ๋ธ๋ก๋์บ์คํธ ๋จ๊ณ์ ๋ค์ด๊ฐ๋๋ค. ๋ฆฌ๋๋ ์ ํธ๋์ญ์ (ํด๋ผ์ด์ธํธ ์ฐ๊ธฐ)์ ์ ์ํ๊ณ ์ด๋ฌํ ์ ์์ ํ๋ก์์๊ฒ ๋ธ๋ก๋์บ์คํธ๋ฉ๋๋ค. ๊ณผ๋ฐ์์ ํ๋ก์๊ฐ ์ ์์ ์ธ์ ํ๋ฉด ๋ฆฌ๋๋ ์ ์์ ์ปค๋ฐํ๊ณ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋ธ๋ก๋์บ์คํธํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ๋ก์๋ ์ปค๋ฐ๋ ํธ๋์ญ์ ์ ๋ก์ปฌ ์ํ์ ์ ์ฉํฉ๋๋ค.
ZAB์ ์ฃผ์ ํน์ง
- ์ด ์ฃผ๋ฌธ ๋ธ๋ก๋์บ์คํธ์ ์ค์ ์ ๋์ด ๋ชจ๋ ์ ๋ฐ์ดํธ๊ฐ ๋ชจ๋ ๋ณต์ ๋ณธ์์ ๋์ผํ ์์๋ก ์ฒ๋ฆฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๋์ ์ฒ๋ฆฌ๋์ ์ ์งํ๊ธฐ ์ํด ๋ฆฌ๋ ์์ ์ฑ์ ๊ฐ๋ ฅํ๊ฒ ๊ฐ์กฐํฉ๋๋ค.
- ๋ฆฌ๋ ์ ์ถ ๋ฐ ์ํ ๋๊ธฐํ๋ฅผ ํต์ฌ ๊ตฌ์ฑ ์์๋ก ํตํฉํฉ๋๋ค.
ZAB์ ์ค์ ์ฌ์ฉ
Apache ZooKeeper๋ Apache Kafka, Hadoop, HBase ๋ฐ Solr๋ฅผ ํฌํจํ ๋ง์ ๋ค๋ฅธ ๋ถ์ฐ ์์คํ ์ ๋ํ ๊ธฐ๋ณธ ์๋น์ค๋ฅผ ์ ๊ณตํ์ฌ ๋ถ์ฐ ๊ตฌ์ฑ, ๋ฆฌ๋ ์ ์ถ ๋ฐ ๋ช ๋ช ๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ ์ ๋ขฐ์ฑ์ ๊ฐ๋ ฅํ ZAB ํ๋กํ ์ฝ์์ ์ง์ ๋น๋กฏ๋ฉ๋๋ค.
๋น์ํด ๋ด๊ฒฐํจ์ฑ(BFT) ์๊ณ ๋ฆฌ์ฆ
Paxos, Raft ๋ฐ ZAB๋ ์ฃผ๋ก ์ถฉ๋ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ์ง๋ง ์ผ๋ถ ํ๊ฒฝ์์๋ ๋ ธ๋๊ฐ ์ ์์ ์ด๊ฑฐ๋ ์์๋ก ๋์ํ ์ ์๋ ๋น์ํด ์ค๋ฅ์ ๋ํ ๋ณต์๋ ฅ์ด ํ์ํฉ๋๋ค. ์ด๋ ํนํ ๊ณต๊ฐ ๋ธ๋ก์ฒด์ธ ๋๋ ๋งค์ฐ ๋ฏผ๊ฐํ ์ ๋ถ/๊ตฐ์ฌ ์์คํ ๊ณผ ๊ฐ์ ์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ์์ ๊ด๋ จ์ด ์์ต๋๋ค.
์ค์ ๋น์ํด ๋ด๊ฒฐํจ์ฑ(PBFT)
1999๋ Castro์ Liskov๊ฐ ์ ์ํ PBFT๋ ๊ฐ์ฅ ์ ์๋ ค์ ธ ์๊ณ ์ค์ฉ์ ์ธ BFT ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ ๋๋ค. ์ต๋ ๋ ธ๋์ 3๋ถ์ 1์ด ๋น์ํด(์ ์์ ์ด๊ฑฐ๋ ๊ฒฐํจ์ด ์์)์ธ ๊ฒฝ์ฐ์๋ ๋ถ์ฐ ์์คํ ์ด ํฉ์์ ๋๋ฌํ ์ ์์ต๋๋ค.
PBFT ์๋ ๋ฐฉ์(๊ฐ๋จํ๋จ)
PBFT๋ ๊ฐ๊ฐ ์ง์ ๋ ๊ธฐ๋ณธ(๋ฆฌ๋)์ด ์๋ ์ผ๋ จ์ ๋ทฐ์์ ์๋ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ด ์คํจํ๊ฑฐ๋ ๊ฒฐํจ์ด ์๋ ๊ฒ์ผ๋ก ์์ฌ๋๋ ๊ฒฝ์ฐ ์ ๊ธฐ๋ณธ๊ฐ์ ์ ์ถํ๊ธฐ ์ํด ๋ทฐ ๋ณ๊ฒฝ ํ๋กํ ์ฝ์ด ์์๋ฉ๋๋ค.
ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ ์ ์์ ์ธ ์์ ์ ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์นฉ๋๋ค.
- ํด๋ผ์ด์ธํธ ์์ฒญ: ํด๋ผ์ด์ธํธ๋ ๊ธฐ๋ณธ ๋ ธ๋์ ์์ฒญ์ ๋ณด๋ ๋๋ค.
- ์ฌ์ ์ค๋น: ๊ธฐ๋ณธ ๋ ธ๋๋ ์์ฒญ์ ์ํ์ค ๋ฒํธ๋ฅผ ํ ๋นํ๊ณ ๋ชจ๋ ๋ฐฑ์ (ํ๋ก์) ๋ ธ๋์ '์ฌ์ ์ค๋น' ๋ฉ์์ง๋ฅผ ๋ฉํฐ์บ์คํธํฉ๋๋ค. ์ด๋ ์์ฒญ์ ๋ํ ์ด๊ธฐ ์์๋ฅผ ์ค์ ํฉ๋๋ค.
- ์ค๋น: ์ฌ์ ์ค๋น ๋ฉ์์ง๋ฅผ ๋ฐ์ผ๋ฉด ๋ฐฑ์ ์ ์ง์๋ฅผ ํ์ธํ ๋ค์ ๊ธฐ๋ณธ ๋ ธ๋๋ฅผ ํฌํจํ ๋ค๋ฅธ ๋ชจ๋ ๋ณต์ ๋ณธ์ '์ค๋น' ๋ฉ์์ง๋ฅผ ๋ฉํฐ์บ์คํธํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ๋ชจ๋ ๊ฒฐํจ์ด ์๋ ๋ณต์ ๋ณธ์ด ์์ฒญ ์์์ ๋์ํ๋์ง ํ์ธํฉ๋๋ค.
-
์ปค๋ฐ: ๋ณต์ ๋ณธ์ด ํน์ ์์ฒญ์ ๋ํด
2f+1์ค๋น ๋ฉ์์ง(์์ฒด ๋ฉ์์ง ํฌํจ)๋ฅผ ๋ฐ์ผ๋ฉด(์ฌ๊ธฐ์f๋ ์ต๋ ๊ฒฐํจ ๋ ธ๋ ์) ๋ค๋ฅธ ๋ชจ๋ ๋ณต์ ๋ณธ์ '์ปค๋ฐ' ๋ฉ์์ง๋ฅผ ๋ฉํฐ์บ์คํธํฉ๋๋ค. ์ด ๋จ๊ณ์์๋ ์์ฒญ์ด ์ปค๋ฐ๋๋์ง ํ์ธํฉ๋๋ค. -
์๋ต:
2f+1์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋ฐ์ ํ ๋ณต์ ๋ณธ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์คํํ๊ณ ํด๋ผ์ด์ธํธ์ '์๋ต'์ ๋ค์ ๋ณด๋ ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์์ ์ด ์ฑ๊ณต์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ธฐ ์ ์f+1๋์ผํ ์๋ต์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
PBFT์ ์ฅ๋จ์
- ์ฅ์ : ๋น์ํด ์ค๋ฅ๋ฅผ ํ์ฉํ์ฌ ์ ์์ ์ธ ์ฐธ๊ฐ์๊ฐ ์๋๋ผ๋ ๊ฐ๋ ฅํ ์์ ๋ณด์ฅ์ ๋ณด์ฅํฉ๋๋ค. ๊ฒฐ์ ๋ก ์ ํฉ์(ํ๋ฅ ์ ์ต์ข ์ฑ์ด ์์).
- ๋จ์ : ์๋นํ ํต์ ์ค๋ฒํค๋(ํฉ์ ๋ผ์ด๋๋น
O(n^2)๋ฉ์์ง๊ฐ ํ์ํ๋ฉฐ, ์ฌ๊ธฐ์n์ ๋ณต์ ๋ณธ ์), ํ์ฅ์ฑ์ด ์ ํ๋ฉ๋๋ค. ๋์ ๋๊ธฐ ์๊ฐ. ๋ณต์กํ ๊ตฌํ.
PBFT์ ์ค์ ๊ตฌํ
์ค๋ฒํค๋๋ก ์ธํด ์ฃผ๋ฅ ์ธํ๋ผ์์๋ ๋ ์ผ๋ฐ์ ์ด์ง๋ง PBFT ๋ฐ ๊ทธ ํ์ ์ ํ์ ์ ๋ขฐ๋ฅผ ๊ฐ์ ํ ์ ์๋ ํ๊ฒฝ์์ ์ค์ํฉ๋๋ค.
- Hyperledger Fabric: ํธ๋์ญ์ ์์ ์ง์ ๋ฐ ์ต์ข ์ฑ์ ์ํด PBFT ํ์(๋๋ ๋ชจ๋์ ํฉ์ ์๋น์ค)์ ์ฌ์ฉํ๋ ํ๊ฐ๋ ๋ธ๋ก์ฒด์ธ ํ๋ซํผ์ ๋๋ค.
- ๋ค์ํ ๋ธ๋ก์ฒด์ธ ํ๋ก์ ํธ: ๋ง์ ์ํฐํ๋ผ์ด์ฆ ๋ธ๋ก์ฒด์ธ ๋ฐ ํ๊ฐ๋ ๋ถ์ฐ ์์ฅ ๊ธฐ์ (DLT)์ ์๋ ค์ ธ ์์ง๋ง ์ ์ฌ์ ์ผ๋ก ์ ๋ขฐํ ์ ์๋ ์ฐธ๊ฐ์ ๊ฐ์ ํฉ์๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด BFT ์๊ณ ๋ฆฌ์ฆ ๋๋ ๋ณํ์ ์ฌ์ฉํฉ๋๋ค.
ํฉ์ ๊ตฌํ: ์ค์ ๊ณ ๋ ค ์ฌํญ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ณ ๊ตฌํํ๋ ๊ฒ์ ์ค์ํ ์์ ์ ๋๋ค. ์ฑ๊ณต์ ์ธ ๋ฐฐํฌ๋ฅผ ์ํด์๋ ์ฌ๋ฌ ๊ฐ์ง ์ค์ ์์๋ฅผ ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ฌ๋ฐ๋ฅธ ์๊ณ ๋ฆฌ์ฆ ์ ํ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํ์ ์์คํ ์ ํน์ ์๊ตฌ ์ฌํญ์ ํฌ๊ฒ ์ข์ฐ๋ฉ๋๋ค.
- ๋ด๊ฒฐํจ์ฑ ์๊ตฌ ์ฌํญ: ์ถฉ๋ ์ค๋ฅ๋ง ํ์ฉํด์ผ ํฉ๋๊น, ์๋๋ฉด ๋น์ํด ์ค๋ฅ๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๊น? ๋๋ถ๋ถ์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ Raft ๋๋ Paxos์ ๊ฐ์ ์ถฉ๋ ๋ด๊ฒฐํจ์ฑ ์๊ณ ๋ฆฌ์ฆ์ด ์ถฉ๋ถํ๊ณ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๊ณ ๋๋ก ์ ๋์ ์ด๊ฑฐ๋ ์ ๋ขฐํ ์ ์๋ ํ๊ฒฝ(์: ๊ณต๊ฐ ๋ธ๋ก์ฒด์ธ)์ ๊ฒฝ์ฐ BFT ์๊ณ ๋ฆฌ์ฆ์ด ํ์ํฉ๋๋ค.
- ์ฑ๋ฅ ๋ ์ผ๊ด์ฑ ์ ์ถฉ: ์ผ๊ด์ฑ์ด ๋์์๋ก ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง๊ณ ์ฒ๋ฆฌ๋์ด ๋ฎ์์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ต์ข ์ผ๊ด์ฑ ๋ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฉ ์ค์ฐจ๋ฅผ ์ดํดํฉ๋๋ค. Raft๋ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ ๊ท ํ์ ์ ๊ณตํฉ๋๋ค.
- ๊ตฌํ ๋ฐ ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ: Raft์ ๋จ์์ฑ์ ์๋ก์ด ๊ตฌํ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. Paxos๋ ๊ฐ๋ ฅํ์ง๋ง ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. ์์ง๋์ด๋ง ํ์ ๊ธฐ์ ๊ณผ ์ฅ๊ธฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ์ญ์์ค.
-
ํ์ฅ์ฑ ์๊ตฌ ์ฌํญ: ํด๋ฌ์คํฐ์ ๋ช ๊ฐ์ ๋
ธ๋๊ฐ ์์ต๋๊น? ์ผ๋ง๋ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋์ด ์์ต๋๊น?
O(n^2)ํต์ ๋ณต์ก์ฑ(PBFT์ ๊ฐ์)์ด ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์๋ฐฑ ๋๋ ์์ฒ ๊ฐ์ ๋ ธ๋๋ก ํ์ฅ๋์ง ์์ง๋ง ๋ฆฌ๋ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ ํฐ ํด๋ฌ์คํฐ๋ฅผ ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋คํธ์ํฌ ์์ ์ฑ ๋ฐ ์๊ฐ ์ด๊ณผ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋คํธ์ํฌ ์กฐ๊ฑด์ ๋งค์ฐ ๋ฏผ๊ฐํฉ๋๋ค. ๊ตฌํ์ ๋ค์์ ๊ฐ๋ ฅํ๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
- ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ: ์ง์ฐ์ผ๋ก ์ธํด ํฉ์ ๋ผ์ด๋๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค. ํนํ ์ฌ๋ฌ ๋ผ์ด๋์ ํต์ ์ด ํ์ํ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
- ํจํท ์์ค: ๋ฉ์์ง๊ฐ ์ญ์ ๋ ์ ์์ต๋๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ ์ธ ๋ฉ์์ง ์ ๋ฌ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์๋ ๋ฐ ์น์ธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๋คํธ์ํฌ ํํฐ์ : ์์คํ ์ ํํฐ์ ์ ๊ฐ์งํ๊ณ ๋ณต๊ตฌํ ์ ์์ด์ผ ํ๋ฉฐ ๋ถํ ์ค์๋ ์ผ๊ด์ฑ์ ์ํด ๊ฐ์ฉ์ฑ์ ํฌ์ํ ์ ์์ต๋๋ค.
- ์ ์ํ ์๊ฐ ์ด๊ณผ: ๊ณ ์ ๋ ์๊ฐ ์ด๊ณผ๋ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ๋์ ์ด๊ณ ์ ์ํ ์๊ฐ ์ด๊ณผ(์: ๋ฆฌ๋ ์ ์ถ)๋ ์์คํ ์ด ๋ค์ํ ๋คํธ์ํฌ ๋ก๋ ๋ฐ ์กฐ๊ฑด์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ฐํํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ํ ๋จธ์ ๋ณต์ (SMR)
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ข ์ข ์ํ ๋จธ์ ๋ณต์ (SMR)๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. SMR์์ ์๋น์ค์ ๋ชจ๋ ๋ณต์ ๋ณธ์ ๋์ผํ ์ด๊ธฐ ์ํ์์ ์์ํ๊ณ ๋์ผํ ์์๋ก ๋์ผํ ์ํ์ค์ ํด๋ผ์ด์ธํธ ๋ช ๋ น์ ์ฒ๋ฆฌํฉ๋๋ค. ๋ช ๋ น์ด ๊ฒฐ์ ์ ์ธ ๊ฒฝ์ฐ ๋ชจ๋ ๋ณต์ ๋ณธ์ ๋์ผํ ์ํ์ค์ ์ํ๋ฅผ ๊ฑฐ์ณ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค. ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ญํ ์ ์ํ ๋จธ์ ์ ์ ์ฉ๋ ๋ช ๋ น์ ์ด ์์์ ๋์ํ๋ ๊ฒ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋ณต์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ถ์ฐ ์ ๊ธ ๋ฐ ๊ตฌ์ฑ ์๋น์ค์ ๊ฐ์ ๋ด๊ฒฐํจ์ฑ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๊ธฐ๋ณธ์ ์ ๋๋ค.
๋ชจ๋ํฐ๋ง ๋ฐ ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ๋ถ์ฐ ์์คํ ์ ์ด์ํ๋ ค๋ฉด ๊ด๋ฒ์ํ ๋ชจ๋ํฐ๋ง์ด ํ์ํฉ๋๋ค. ์ถ์ ํ ์ฃผ์ ๋ฉํธ๋ฆญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ฆฌ๋ ์ํ: ํ์ฌ ๋ฆฌ๋๋ ์ด๋ค ๋ ธ๋์ ๋๊น? ์ผ๋ง๋ ์ค๋ซ๋์ ๋ฆฌ๋์์ต๋๊น?
- ๋ก๊ทธ ๋ณต์ ์งํ๋ฅ : ํ๋ก์๊ฐ ๋ฆฌ๋์ ๋ก๊ทธ๋ณด๋ค ๋ค์ณ์ง๊ณ ์์ต๋๊น? ๋ณต์ ์ง์ฐ์ ๋ฌด์์ ๋๊น?
- ํฉ์ ๋ผ์ด๋ ๋๊ธฐ ์๊ฐ: ์ ํญ๋ชฉ์ ์ปค๋ฐํ๋ ๋ฐ ์ผ๋ง๋ ๊ฑธ๋ฆฝ๋๊น?
- ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ ๋ฐ ํจํท ์์ค: ๋ชจ๋ ๋ ธ๋ ๊ฐ, ํนํ ๋ฆฌ๋์ ํ๋ก์ ๊ฐ.
- ๋ ธ๋ ์ํ: ๋ชจ๋ ์ฐธ๊ฐ์์ ๋ํ CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ I/O.
์ด๋ฌํ ๋ฉํธ๋ฆญ์ ๊ธฐ๋ฐ์ผ๋ก ํ ํจ๊ณผ์ ์ธ ๊ฒฝ๊ณ ๋ ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ์ง๋จํ๊ณ ํด๊ฒฐํ์ฌ ํฉ์ ์คํจ๋ก ์ธํ ์๋น์ค ์ค๋จ์ ๋ฐฉ์งํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋ณด์ ์๋ฏธ
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ํฉ์๋ฅผ ๋ณด์ฅํ์ง๋ง ๋ณธ์ง์ ์ผ๋ก ๋ณด์์ ์ ๊ณตํ์ง๋ ์์ต๋๋ค. ๊ตฌํ์ ๋ค์์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ์ธ์ฆ: ๊ถํ์ด ์๋ ๋ ธ๋๋ง ํฉ์ ํ๋ก์ธ์ค์ ์ฐธ์ฌํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๊ถํ ๋ถ์ฌ: ๊ฐ ๋ ธ๋๊ฐ ์ํํ ์ ์๋ ์์ (์: ๊ฐ ์ ์, ํฌํ)์ ์ ์ํฉ๋๋ค.
- ์ํธํ: ๋์ฒญ์ด๋ ๋ณ์กฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ ธ๋ ๊ฐ์ ํต์ ์ ๋ณดํธํฉ๋๋ค.
- ๋ฌด๊ฒฐ์ฑ: ๋์งํธ ์๋ช ๋๋ ๋ฉ์์ง ์ธ์ฆ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๊ฐ ์ ์ก ์ค์ ๋ณ๊ฒฝ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค. ํนํ BFT ์์คํ ์ ์ค์ํฉ๋๋ค.
๊ณ ๊ธ ์ฃผ์ ๋ฐ ๋ฏธ๋ ๋ํฅ
๋ถ์ฐ ํฉ์ ๋ถ์ผ๋ ์ง์์ ์ผ๋ก ๋ฐ์ ํ๊ณ ์์ผ๋ฉฐ ์งํ ์ค์ธ ์ฐ๊ตฌ์ ์๋ก์ด ๊ณผ์ ๊ฐ ๋ฑ์ฅํ๊ณ ์์ต๋๋ค.
๋์ ๋ฉค๋ฒ์ญ
๋ง์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ฐ ๋ ธ๋์ ์ ์ ์งํฉ์ ๊ฐ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ์์คํ ์์๋ ๊ท๋ชจ๋ฅผ ํ์ฅํ๊ฑฐ๋ ์ถ์ํ๊ฑฐ๋ ์คํจํ ํ๋์จ์ด๋ฅผ ๊ต์ฒดํ๊ธฐ ์ํด ๋์ ๋ฉค๋ฒ์ญ ๋ณ๊ฒฝ(๋ ธ๋ ์ถ๊ฐ ๋๋ ์ ๊ฑฐ)์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ผ๊ด์ฑ์ ์ ์งํ๋ฉด์ ํด๋ฌ์คํฐ ๋ฉค๋ฒ์ญ์ ์์ ํ๊ฒ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ณต์กํ ๋ฌธ์ ์ด๋ฉฐ Raft์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์๋ ์ด์ ๋ํ ์ ์ ์๋ ๋ค๋จ๊ณ ํ๋กํ ์ฝ์ด ์์ต๋๋ค.
์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ๋ฐฐํฌ(WAN ๋๊ธฐ ์๊ฐ)
์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ๋ฐ์ดํฐ ์ผํฐ์ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฐํฌํ๋ฉด ๊ด์ญ ๋คํธ์ํฌ(WAN) ๋๊ธฐ ์๊ฐ์ด ํฌ๊ฒ ๋ฐ์ํ์ฌ ์ฑ๋ฅ์ ์ฌ๊ฐํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. WAN์ ์ต์ ํ๋ Paxos ๋๋ Raft ๋ณํ(์: ๋ ๋น ๋ฅธ ์ฝ๊ธฐ๋ฅผ ์ํด ๋ก์ปฌ ์ง์ญ ๋ด์์ ๋ ์์ ์ ์กฑ์ ์ฌ์ฉ ๋๋ ๋ฆฌ๋ ์ ์คํ๊ฒ ๋ฐฐ์น)๊ณผ ๊ฐ์ ์ ๋ต์ด ํ๊ตฌ๋๊ณ ์์ต๋๋ค. ๋ค์ค ์ง์ญ ๋ฐฐํฌ์๋ ์ข ์ข ๊ธ๋ก๋ฒ ์ผ๊ด์ฑ๊ณผ ๋ก์ปฌ ์ฑ๋ฅ ๊ฐ์ ์ ์ถฉ์ด ํฌํจ๋ฉ๋๋ค.
๋ธ๋ก์ฒด์ธ ํฉ์ ๋ฉ์ปค๋์ฆ
๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ๋ถ์์ ํฉ์์ ๋ํ ์๋ก์ด ๊ด์ฌ๊ณผ ํ์ ์ ๋ถ๋ฌ์ผ์ผ์ผฐ์ต๋๋ค. ๊ณต๊ฐ ๋ธ๋ก์ฒด์ธ์ ๊ณ ์ ํ ๋ฌธ์ ์ ์ง๋ฉดํด ์์ต๋๋ค. ์ค์ ๊ธฐ๊ด ์์ด ํฌ๊ณ ์ญ๋์ ์ด๋ฉฐ ์ ์ฌ์ ์ผ๋ก ์ ๋์ ์ธ ๋ฏธ์ง์ ์ฐธ๊ฐ์ ์ง๋จ ๊ฐ์ ํฉ์๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ์ ๋๋ค. ์ด๋ก ์ธํด ์๋ก์ด ํฉ์ ๋ฉ์ปค๋์ฆ์ด ๊ฐ๋ฐ๋์์ต๋๋ค.
- ์์ ์ฆ๋ช (PoW):('The Merge' ์ด์ ์ Bitcoin, Ethereum) ์ ์์ ์ธ ํ์์๊ฐ ๊ธฐ๋ก์ ๋ค์ ์์ฑํ๋ ๋ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๊ฒ ํ์ฌ ์์ฅ์ ๋ณดํธํ๊ธฐ ์ํด ๊ณ์ฐ ํผ์ฆ ํด๊ฒฐ์ ์์กดํฉ๋๋ค.
- ์ง๋ถ ์ฆ๋ช (PoS):('The Merge' ์ดํ์ Ethereum, Solana, Cardano) ๊ฒ์ฆ์๋ ๋ด๋ณด๋ก '์คํ ์ดํฌ'ํ๋ ์ํธ ํํ์ ์์ ๋ฐ๋ผ ์ ํ๋์ด ์ ์งํ ํ๋์ ์ฅ๋ คํฉ๋๋ค.
- ์์๋ ์ง๋ถ ์ฆ๋ช (DPoS):(์: EOS, TRON) ์ดํด ๊ด๊ณ์๋ ์ ํ๋ ์์ ๋ํ์๋ฅผ ์ ์ถํ์ฌ ํธ๋์ญ์ ์ ๊ฒ์ฆํฉ๋๋ค.
- ๋ฐฉํฅ์ฑ ๋น์ํ ๊ทธ๋ํ(DAG):(์: IOTA, Fantom) ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํตํด ํธ๋์ญ์ ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก ๊ธฐ์กด ๋ธ๋ก ๊ธฐ๋ฐ ํฉ์ ์์ด ๋ ๋์ ์ฒ๋ฆฌ๋์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ฐ์ ์ผ๋ก ์ ๋ขฐํ ์ ์๊ณ ์ ํ๋ ๋ ธ๋ ์งํฉ ๋ด์์ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ๊ณผ ๋์ ๊ฐ์ฉ์ฑ์ ์ด์ ์ ๋ง์ถ๋ ๊ธฐ์กด์ ๋ถ์ฐ ์์คํ ํฉ์์ ๋น๊ตํ์ฌ ๋ค์ํ ์์ฑ(์: ๊ฒ์ด ์ ํญ, ๋ถ์ฐํ, ์ต์ข ์ฑ)์ ์ฐ์ ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ต์ ํ ๋ฐ ๋ณํ
์งํ ์ค์ธ ์ฐ๊ตฌ๋ ๊ธฐ์กด ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ ํ๊ณ ์๋ก์ด ์๊ณ ๋ฆฌ์ฆ์ ์ ์ํ๊ณ ์์ต๋๋ค. ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Fast Paxos: ์ ์์ ์ธ ์กฐ๊ฑด์์ ๋จ์ผ ๋ผ์ด๋์ ํต์ ์ผ๋ก ๊ฐ์ ์ ํํ ์ ์๋๋ก ํ์ฌ ๋๊ธฐ ์๊ฐ์ ์ค์ด๋๋ก ์ค๊ณ๋ ๋ณํ์ ๋๋ค.
- Egalitarian Paxos: ์ผ๋ถ ์๋๋ฆฌ์ค์์ ์กฐ์ ์์ด ์ฌ๋ฌ ๋ฆฌ๋ ๋๋ ์ ์์๊ฐ ๋์์ ์๋ํ๋๋ก ํ์ฌ ์ฒ๋ฆฌ๋์ ํฅ์์ํค๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- Generalized Paxos: ๊ฐ ์ํ์ค ๋ฐ ์์์ ์ํ ๋จธ์ ์์ ์ ๋ํ ํฉ์๋ฅผ ํ์ฉํ๋๋ก Paxos๋ฅผ ํ์ฅํฉ๋๋ค.
๊ฒฐ๋ก
ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ ์ธ ๋ถ์ฐ ์์คํ ์ด ๊ตฌ์ถ๋๋ ๊ธฐ๋ฐ์ ๋๋ค. ๊ฐ๋ ์ ์ผ๋ก ์ด๋ ต์ง๋ง ํ๋ ์์คํ ์ํคํ ์ฒ์ ๋ณต์ก์ฑ์ ๋ฐ์ด๋๋ ๋ชจ๋ ์ ๋ฌธ๊ฐ์๊ฒ๋ ๊ทธ ์๋ฌ์ด ํ์์ ์ ๋๋ค. Paxos์ ์๊ฒฉํ ์์ ๋ณด์ฅ์์ Raft์ ์ฌ์ฉ์ ์นํ์ ์ธ ๋์์ธ, PBFT์ ๊ฐ๋ ฅํ ๋ด๊ฒฐํจ์ฑ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ๋ถํ์ค์ฑ์ ์ง๋ฉดํ์ฌ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๊ณ ์ ํ ์ ์ถฉ์์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ ๊ฒ์ ๋จ์ํ ํ๋ฌธ์ ์ฐ์ต์ด ์๋๋๋ค. ๋คํธ์ํฌ์ ํ๋์จ์ด ์ค๋ฅ์ ์์ธก ๋ถ๊ฐ๋ฅํ ํน์ฑ์ ๊ฒฌ๋ ์ ์๋ ์์คํ ์ ์์ง๋์ด๋งํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฐ ์ง์์ ์ธ ์ด์์ ๋ณด์ฅํ๋ ๊ฒ์ ๋๋ค. ํด๋ผ์ฐ๋ ์ปดํจํ , ๋ธ๋ก์ฒด์ธ ๋ฐ ์ ์ธ๊ณ ๊ท๋ชจ์ ์๋น์ค์ ๋ํ ๋์์์ด ์ฆ๊ฐํ๋ ์์์ ํ์ ์ด ๋ถ์ฐ ์์คํ ์ด ๊ณ์ ์งํํจ์ ๋ฐ๋ผ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์์น๊ณผ ์ค์ ์ ์ฉ์ ๊ฐ๋ ฅํ๊ณ ๋ณต์๋ ฅ ์๋ ์์คํ ์ค๊ณ์ ์ต์ ์ ์ ๋จ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ณธ ๋น๋ฉ ๋ธ๋ก์ ์ดํดํ๋ฉด ์์ง๋์ด๊ฐ ์ํธ ์ฐ๊ฒฐ๋ ์ธ๊ณ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ฐจ์ธ๋ ๊ฐ์ฉ์ฑ์ด ๋๊ณ ์ผ๊ด์ฑ ์๋ ๋์งํธ ์ธํ๋ผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.